package pe.gob.minam.sismon.core.domain;

// Generated 10/06/2013 05:19:41 PM by Hibernate Tools 3.4.0.CR1

import java.util.Date;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * SegOpcion generated by hbm2java
 */
@Entity
@Table(name = "SEG_OPCION")
public class SegOpcion implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Integer idOpcion;
	private GnrSistema gnrSistema;
	private String nombreCorto;
	private String nombreLargo;
	private String descripcion;
	private String estado;
	private Integer idOpcionPadre;
	private String tipoOpcion;
	private Integer orden;
	private String url;
	private String codRegistro;
	private Date fecRegistro;
	private String codActualizacion;
	private Date fecActualizacion;
	private List<SegPerfilOpcion> segPerfilOpcions = new ArrayList<SegPerfilOpcion>(0);

	public SegOpcion() {
	}

	public SegOpcion(Integer idOpcion) {
		this.idOpcion = idOpcion;
	}

	public SegOpcion(Integer idOpcion, GnrSistema gnrSistema,
			String nombreCorto, String nombreLargo, String descripcion,
			String estado, Integer idOpcionPadre, String tipoOpcion,
			Integer orden, String url, String codRegistro, Date fecRegistro,
			String codActualizacion, Date fecActualizacion, List<SegPerfilOpcion> segPerfilOpcions) {
		this.idOpcion = idOpcion;
		this.gnrSistema = gnrSistema;
		this.nombreCorto = nombreCorto;
		this.nombreLargo = nombreLargo;
		this.descripcion = descripcion;
		this.estado = estado;
		this.idOpcionPadre = idOpcionPadre;
		this.tipoOpcion = tipoOpcion;
		this.orden = orden;
		this.url = url;
		this.codRegistro = codRegistro;
		this.fecRegistro = fecRegistro;
		this.codActualizacion = codActualizacion;
		this.fecActualizacion = fecActualizacion;
		this.segPerfilOpcions = segPerfilOpcions;
	}

	@Id
	@Column(name = "ID_OPCION", unique = true, nullable = false, precision = 22, scale = 0)
	@GeneratedValue(strategy=GenerationType.AUTO, generator="SQ_SEG_OPCION")
	@SequenceGenerator(name="SQ_SEG_OPCION", sequenceName="SQ_SEG_OPCION")
	public Integer getIdOpcion() {
		return this.idOpcion;
	}

	public void setIdOpcion(Integer idOpcion) {
		this.idOpcion = idOpcion;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_SISTEMA")
	public GnrSistema getGnrSistema() {
		return this.gnrSistema;
	}

	public void setGnrSistema(GnrSistema gnrSistema) {
		this.gnrSistema = gnrSistema;
	}

	@Column(name = "NOMBRE_CORTO", nullable = false, length = 10)
	public String getNombreCorto() {
		return this.nombreCorto;
	}

	public void setNombreCorto(String nombreCorto) {
		this.nombreCorto = nombreCorto;
	}

	@Column(name = "NOMBRE_LARGO", nullable = false, length = 20)
	public String getNombreLargo() {
		return this.nombreLargo;
	}

	public void setNombreLargo(String nombreLargo) {
		this.nombreLargo = nombreLargo;
	}

	@Column(name = "DESCRIPCION", nullable = false, length = 100)
	public String getDescripcion() {
		return this.descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	@Column(name = "ESTADO", nullable = false, length = 1)
	public String getEstado() {
		return this.estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	@Column(name = "ID_OPCION_PADRE", precision = 22, scale = 0)
	public Integer getIdOpcionPadre() {
		return this.idOpcionPadre;
	}

	public void setIdOpcionPadre(Integer idOpcionPadre) {
		this.idOpcionPadre = idOpcionPadre;
	}

	@Column(name = "TIPO_OPCION", nullable = false, length = 1)
	public String getTipoOpcion() {
		return this.tipoOpcion;
	}

	public void setTipoOpcion(String tipoOpcion) {
		this.tipoOpcion = tipoOpcion;
	}

	@Column(name = "ORDEN", nullable = false, precision = 22, scale = 0)
	public Integer getOrden() {
		return this.orden;
	}

	public void setOrden(Integer orden) {
		this.orden = orden;
	}

	@Column(name = "URL", length = 500)
	public String getUrl() {
		return this.url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	@Column(name = "COD_REGISTRO", length = 8)
	public String getCodRegistro() {
		return this.codRegistro;
	}

	public void setCodRegistro(String codRegistro) {
		this.codRegistro = codRegistro;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FEC_REGISTRO", length = 7)
	public Date getFecRegistro() {
		return this.fecRegistro;
	}

	public void setFecRegistro(Date fecRegistro) {
		this.fecRegistro = fecRegistro;
	}

	@Column(name = "COD_ACTUALIZACION", length = 8)
	public String getCodActualizacion() {
		return this.codActualizacion;
	}

	public void setCodActualizacion(String codActualizacion) {
		this.codActualizacion = codActualizacion;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FEC_ACTUALIZACION", length = 7)
	public Date getFecActualizacion() {
		return this.fecActualizacion;
	}

	public void setFecActualizacion(Date fecActualizacion) {
		this.fecActualizacion = fecActualizacion;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "segOpcion")
	public List<SegPerfilOpcion> getSegPerfilOpcions() {
		return this.segPerfilOpcions;
	}

	public void setSegPerfilOpcions(List<SegPerfilOpcion> segPerfilOpcions) {
		this.segPerfilOpcions = segPerfilOpcions;
	}

}
